package com.ruoyi.cm.service;

import com.ruoyi.cm.domain.CmBsStartAdvance;
import com.ruoyi.cm.domain.vo.CmBsStartAdvanceVo;
import com.ruoyi.cm.domain.bo.CmBsStartAdvanceBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 开工预付款Service接口
 *
 * @author zyb
 * @date 2024-09-28
 */
public interface ICmBsStartAdvanceService {

    /**
     * 查询开工预付款
     */
    CmBsStartAdvanceVo queryById(Long id);

    /**
     * 查询开工预付款列表
     */
    TableDataInfo<CmBsStartAdvanceVo> queryPageList(CmBsStartAdvanceBo bo, PageQuery pageQuery);

    /**
     * 查询开工预付款列表
     */
    List<CmBsStartAdvanceVo> queryList(CmBsStartAdvanceBo bo);

    List<CmBsStartAdvanceVo> listData(CmBsStartAdvanceBo bo);

    /**
     * 新增开工预付款
     */
    Boolean insertByBo(CmBsStartAdvanceBo bo);


    Boolean saveBatch(List<CmBsStartAdvanceBo> boList);

    /**
     * 修改开工预付款
     */
    Boolean updateByBo(CmBsStartAdvanceBo bo);

    /**
     * 修改开工预付款审批状态
     */
    Boolean updateApprovalStatusByBo(CmBsStartAdvanceBo bo);


    /**
     * 校验并批量删除开工预付款信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);


    // 标段关联删除
    void removeQs(CmBsStartAdvanceBo bo);

    //批量删除开工预付款
    void removeAdvance(CmBsStartAdvanceBo bo);
}
